package buffer1;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;

/*练习六:转换输入流的使用
        描述:利用转换输入流将当前项目根目录下使用gbk编码的a.txt文件的内容读取出来，并打印在控制台上。
        要求：不能出现乱码的情况。
   */
public class Test10 {
    public static void main(String[] args) throws Exception {
        //定义字符输入流对象，因为需要规定指定的编码读取数据
        InputStreamReader isr = new InputStreamReader(new FileInputStream("IO\\copy"), "GBK");
        //定义一次读取字符数据的长度
    char[] chars = new char[1024];
    //定义变量存储读取有效数据的长度
        int ten;
        //使用while循环进行读取数据
      while ((ten = isr.read(chars)) != -1) {
          //输出读取的数据使用String字符的toString方法
           System.out.println(new String(chars, 0, ten));
     }
      //使用while循环一次读取一个字符长度的方法读取数据
        while((ten=isr.read())!=-1){
            System.out.println((char)ten);//输出读取的数据，并强制转化为字符类型
        }
    }
}
